package com.cq.hd.system.api;

import com.cq.hd.common.entity.mq.NotifyMsgSendDto;
import com.cq.hd.common.pagination.Page;
import com.cq.hd.common.response.Result;
import com.cq.hd.system.api.dto.NotifyMsgPageDto;
import com.cq.hd.system.api.dto.NotifyMsgUpdateReadDto;
import com.cq.hd.system.api.vo.NotifyMsgPageVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@FeignClient(value = "hd-o2o-system-service", contextId = "notify-msg-api")
public interface NotifyMsgApi {

    // 保存通知消息
    @PostMapping("/system/notifyMsg/save")
    Result<Boolean> saveNotifyMsg(@RequestBody NotifyMsgSendDto notifyMsgSaveDto);

    // 根据用户id批量获取通知消息数据
    @GetMapping("/system/notifyMsg/pageNotifyMsg")
    Result<Page<NotifyMsgPageVo>> pageNotifyMsg(@SpringQueryMap NotifyMsgPageDto notifyMsgPageDto);

    // 更新消息已读状态
    @PostMapping("/system/notifyMsg/updateRead")
    Result<Boolean> updateRead(@RequestBody NotifyMsgUpdateReadDto notifyMsgUpdateReadDto);

    // 清空未读消息
    @PostMapping("/system/notifyMsg/cleanNoRead")
    Result<Boolean> cleanNoRead(@RequestBody NotifyMsgUpdateReadDto notifyMsgUpdateReadDto);

    // 获取未读消息个数
    @GetMapping("/system/notifyMsg/getNoReadCount")
    Result<Integer> getNoReadCount(@SpringQueryMap NotifyMsgPageDto notifyMsgPageDto);
}
